1. Field of the Invention
This invention relates in general to communication systems and more particularly to communication systems having capability to dynamically manage contacts.
2. Description of the Related Art
With the proliferation of the Internet, the way people communicate is changing. Electronic communication such as electronic mail (email), and real time electronic messaging (e.g. instant messaging and chat messaging) is quickly replacing traditional telephonic communication and handwritten letters. Real time electronic messaging allows the simultaneous access to a message or a plurality of messages by multiple users, with each messaging user capable of inputting a message or a plurality of messages to a session. Each inputted message is relayed to clients operating on devices (such as computers or mobile telephones) of the other messaging users who have chosen to participate in that session. The other session participants can respond with their own messages, which are likewise relayed to all the participating devices. These messages are typically text messages that are delivered to the intended recipient(s) of the message in a real time manner. However, these messages can be in a variety of different media formats or combinations thereof such as audio, animation, video, images, etc. A session history of the messages received and transmitted by all participants involved in the session is typically maintained on the individual participants' devices and typically presented on the screen of the respective device in the form of a scrolling dialog. This text history constitutes one of the attributes of the look and feel of the real time electronic messaging experience.
There are currently several standard methods available for participating in real time messaging communications. For example, personal instant messaging typically occurs between two individuals. An individual can establish a private chat room so that multiple messaging users can participate in a common on-line conversation. Participants gain access to the private chat room by accepting an invitation from the creator of the private chat room. Non-restricted public chat rooms are available to anyone interested in the topic being discussed by simply selecting the desired chat room descriptor on the messaging user's device.
Each messaging session can have various types of session attributes such as session type, session connection info, participants, filter settings, colors, relative font sizes, etc. The messaging user can also have various types of preferences such as colors, relative font sizes, contact lists, nicknames, and parental control settings. These are only a few examples of the attributes and preferences that can effect a messaging session.
In order to utilize real time electronic messaging, a device is pre-configured with, or the messaging user installs, application client software distributed by a particular service provider. The client software connects to a message server for communication. To access the message server, via a logon procedure, the client sends the routing information (e.g. IP address and number of the port assigned to the client, mobile phone number) of the device being used, the username, the messaging user's password, and the messaging user's current availability setting to the message server. The message server temporarily stores the routing and availability information for the messaging user's device.
In response to the messaging user's login information (username and password), the message server provides the client with the messaging user's contact list. The message server then determines the presence and availability of the contacts in that contact list. If the message server finds any of the contacts logged in (i.e. presence setting is online), it sends a message back to the client on the messaging user's device with the presence and availability information for that contact. The message server also sends the messaging user's presence and availability information to the contacts that have the messaging user in their contact list. The messaging user can click on the name of a person in his/her contact list who is online, and a window is created in which the messaging user can enter a message. The messaging user enters a message and clicks “send” to communicate with that person. The other person gets the message and can respond. Messages can be addressed directly to the messaging user's device or can be addressed to the username and sent via the message server.
When the messaging session is complete, the participating messaging users close the message window for that messaging session. When the messaging user signs off, his/her messaging client sends a message to the message server to terminate the messaging user's participation in the plurality of messaging sessions. The message server then sends an update of the messaging user's presence and availability information to the people that have the messaging user in their contact list to indicate the messaging user has signed off. Finally, the message server discards the routing and availability information for the messaging user's device.
The contact list feature enables a messaging user to create, organize, and manage a list of online friends, family members, and co-workers on their computer or from their mobile phone. A contact list window lets a messaging user see which of their contacts are offline or busy, and which are online and ready for messaging. Whenever these contacts sign on, their screen names appear as active in the messaging user's contact list window, allowing the messaging user to communicate with them instantly.
As real time messaging communication such as instant messaging becomes more pervasive, each messaging user's list of contacts having such capability increases. As a result, contact lists are becoming larger and more difficult to manage and interruptions from contacts wanting to communicate or notifications of changes in a contacts status are becoming more frequent. In a wireless environment, the larger contact list also means an increase in data being sent via the communication channel for presence updates and real time communication requests.
Current instant messaging systems include a few basic features to aid in contact list and interruption management. For example, a messaging user can create separate folders categories the different types of contacts. (e.g. friends, family, work) Some messaging systems also allow a messaging user to assign a subset of their contact list to be utilized on their mobile device. Some systems also include customizable notification settings for differentiation of the various contacts. (e.g. pop-up a window when Fred's presence changes, but only beep when Joe's presence changes). Visibility settings can also be utilized for differentiation of the messaging user's availability to various contacts. (E.g. invisible to Fred, online but unavailable to Joe, online and available to Donna).
One drawback of the above described methods is that due to the amount of time required to enter all of these settings or to move contacts between various lists, a messaging user is likely to enter the settings only once and is not likely to change them again. But this is counter to the fact that the people a messaging user wants to communicate with will change over time. For example, a messaging user may have a customer relationship with one contact that he would like to maintain by communicating with them at least once a quarter. The messaging user is not interested in this contact's presence information if he just chatted with the contact last week, but is very interested if it's been four months since they last communicated.